home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 4 / 64er_Magazin_Sonderheft_04_86-04_1986_Markt__Technik_de_Disk_1_of_2_Side_A.d64 / listing 14.d (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  1KB  |  37 lines

  1. 10 gosub10000:rem datei deffinieren
  2. 20 print"datei ungeordnet:"
  3. 30 fori=1tosz:printd$(i):nexti
  4. 40 gosub30000:rem 1.schluessel sortieren
  5. 50 print"datei nach 1.schluessel sortiert:"
  6. 60 fori=1tosz:printd$(i):nexti
  7. 70 end
  8. 10000 rem fruechte-datei deffinieren -------------------------------------------
  9. 10010 sz=8      :rem anzahl der saetze
  10. 10020 dim d$(sz):rem string-feld
  11. 10030 for i=1 to sz
  12. 10040 : read d$(i)
  13. 10050 nexti
  14. 10100 data"vizawrite      01200.0024"
  15. 10105 data"wordpro        01155.5013"
  16. 10110 data"space invaders 02 39.0067"
  17. 10115 data"jumpman        02 49.0034"
  18. 10120 data"simons basic   03 99.0065"
  19. 10125 data"g-basic        03140.0045"
  20. 10130 data"gordon saga    04 39.0089"
  21. 10135 data"deadline       04 99.0034"
  22. 10140 return
  23. 30000 rem  quicksort -----------------------------------------------------------
  24. 30001 dimlg(100),rg(100):z=0:lg(1)=1:rg(1)=sz
  25. 30010 z=z+1:iflg(z)>=rg(z)then30120
  26. 30020 x=lg(z):y=rg(z)
  27. 30030 vg$=left$(d$(int((x+y)/2)),15)
  28. 30040 if x>y then30100
  29. 30050 if left$(d$(x),15)<vg$thenx=x+1:goto30050
  30. 30060 if left$(d$(y),15)>vg$theny=y-1:goto30060
  31. 30070 if x>ythen30100
  32. 30080 s$=d$(x):d$(x)=d$(y):d$(y)=s$
  33. 30090 x=x+1:y=y-1:goto30040
  34. 30100 rg(z+1)=y:lg(z+1)=lg(z):gosub30010
  35. 30110 lg(z+1)=x:rg(z+1)=rg(z):gosub30010
  36. 30120 z=z-1:return
  37.